IF exists(SELECT * FROM dbo.sysobjects WHERE name='vk_klasGemiddeldeProcent' AND xtype='P') 
BEGIN
	DROP PROCEDURE vk_klasGemiddeldeProcent
END
GO

CREATE     PROCEDURE vk_klasGemiddeldeProcent(
  @klas varchar(5),
  @periode char(2))
as
set nocount on

declare @hulptabel table (vak char(2),code varchar(6),cijfer float,maximum float)

insert into @hulptabel(vak,code,cijfer,maximum)
  select vc.vak,vc.code,vc.cijfer,vc.maximum
  from vakrapportCollectieveRekenwijze as vir
  left join vakrapportCijferresultaten as vc
	on vc.code = vir.code and
           vc.vak = vir.vak and
	   vc.klas = vir.klas and
	   vir.periode = vc.periode
  where vir.rekenwijze = 'klasgemiddeldeProcent' and 
	vir.klas = @klas  and
	vir.periode = @periode and
	vc.cijfer >= 0 and
	vc.maximum > 0

insert into vakrapportCollectiefBerekend(klas,vak,periode,code,cijfer)
select @klas,r.vak,@periode,r.code + 'gem',convert(varchar(10),round(sum(cijfer)*100/sum(maximum),0))  
  from @hulptabel as c
    left join vakrapportCollectieveRekenwijze as r
	on r.Code = c.code
          and r.vak = c.vak
           and r.periode = @periode
where r.klas = @klas and
	r.periode = @periode and
	  r.rekenwijze = 'klasgemiddeldeProcent'
group by r.vak,r.code